首页 > 试题广场 >

记票统计

[编程题]记票统计
  • 热度指数:124713 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
请实现一个计票统计系统。你会收到很多投票,其中有合法的也有不合法的,请统计每个候选人得票的数量以及不合法的票数。
(注:不合法的投票指的是投票的名字不存在n个候选人的名字中!!)

数据范围:每组输入中候选人数量满足 ,总票数量满足

输入描述:

第一行输入候选人的人数n,第二行输入n个候选人的名字(均为大写字母的字符串),第三行输入投票人的人数,第四行输入投票。



输出描述:

按照输入的顺序,每行输出候选人的名字和得票数量(以" : "隔开,注:英文冒号左右两边都有一个空格!),最后一行输出不合法的票数,格式为"Invalid : "+不合法的票数。

示例1

输入

4
A B C D
8
A D E CF A GG A B

输出

A : 3
B : 1
C : 0
D : 1
Invalid : 3

说明

E CF GG三张票是无效的,所以Invalid的数量是3. 
也可以用字典
n,name_list,m,vote_list = int(input()),input().split(),int(input()),input().split()
dic = {key:vote_list.count(key) for key in name_list}
dic['Invalid'] = m - sum(dic.values())
print(*[key+' : '+str(dic[key]) for key in list(dic.keys())],sep='\n')

编辑于 2024-04-15 09:52:11 回复(0)
n1 = int(input())
names = input().split()
n2 = int(input())
l = input().split()
d = {}
for i in names:
    d[i] = 0

d['Invalid'] = 0
for i in l:
    if i in d.keys():
        d[i] = d.get(i)+1 
    else:
        d['Invalid']+=1
for k,v in d.items():
    print(f"{k} : {v}")

发表于 2023-07-28 13:00:37 回复(0)
while True:
    try:
        n = int(input()) # 输入候选人的数量
        name1 = list(input().split()) # 用列表存储输入有序的候选人名字
        name2 = [] # 用一个空列表初始化候选人得票数
        for i in range(n):
            name2.append(0)
            
        name = dict(zip(name1, name2)) # 用字典存储输入候选人的名字及对应得票数
        m = int(input()) # 输入投票人的数量
        vote = list(input().split()) # 用列表存储输入投票结果
        Invalid = 0 # 无效投票计数
        
        for i in range(m):
            if vote[i] in name:
                for j in name.keys():
                    if j == vote[i]:
                        name[j] += 1
            else:
                Invalid += 1
                
        for i in range(n):
            print(name1[i], ':', name[name1[i]]) # 注意字典是无序的,值要用键来查找
        print('Invalid', ':', Invalid)     
    except:
        break

发表于 2022-09-15 20:28:40 回复(0)
hx_num=int(input())
hx_name=input().split()
tp_num=int(input())
tp_name=input().split()
num_list=[]
for i in range(hx_num):
    num_list.append(tp_name.count(hx_name[i]))
for i in range(hx_num):
    print('%s : %d'%(hx_name[i],num_list[i]))
print('Invalid : %d'%(tp_num-sum(num_list)))
发表于 2022-09-05 10:08:03 回复(0)
n1=int(input())
ln1=input().split()
n2=int(input())
ln2=input().split()
num1=0
for i in ln1:
    num=0
    for j in ln2:
        if i == j:
            num=num+1
    print(i,':',num)
    num1=num1+num
print("Invalid :",n2-num1)
发表于 2022-08-31 00:01:22 回复(0)
while True:
    try:
        person_num = int(input())
        keys = input().split(' ')
        votes_num = int(input())
        votes_lst = input().split(' ')
        mid_dic = {}
        for i in keys:
            mid_dic[i] = 0
        invalid = 0
        for vote in votes_lst:
            if mid_dic.get(vote, 'notfound') != 'notfound':
                mid_dic[vote] += 1
            else:
                invalid += 1
                
        for i in keys:
            print('{} : {}'.format(i, mid_dic[i]))
        print('Invalid : {}'.format(invalid))
    except:
        break
    

发表于 2022-08-26 22:34:20 回复(0)
m = int(input())
houxuanren = input().split()
n = int(input())
piaoshu = input().split()
# print(houxuanren, piaoshu)
for i in range(len(houxuanren)):
    a = 0  # 记录每个候选人的票数,初始都为0
    for j in piaoshu:
        if j == houxuanren[i]:
            a += 1
    print(houxuanren[i] + " : " + str(a))
b = 0 # 记录不合法票数,初始为0
for k in piaoshu:
    if k not in houxuanren:
        b += 1
print("Invalid : " + str(b))
发表于 2022-08-25 18:27:58 回复(0)
n = int(input())
name = input().split()
m = int(input())
vote = input().split()
dics = {i:0 for i in name}
dics.setdefault('Invalid',0)
for i in vote:
    if i in name:
        dics[i] += 1
    else:
        dics['Invalid'] += 1
for key,value in dics.items():
    print(f'{key} : {value}')

发表于 2022-08-10 08:51:12 回复(0)
num=int(input())
name=input()
tnum=int(input())
t=input()
l = name.split(' ')
s = t.split(' ')
d={}
for i in l:
    d[i]=0
d['Invalid']=0
for i in s:
    if i in l:
        d[i]+=1
    else:
        d['Invalid']+=1
for k,v in d.items() :
    print(str(k)+' : '+str(v))
发表于 2022-08-07 14:28:55 回复(0)
hxCount = int(input())
hxr = input().split()
tpCount = int(input())
tp = input().split()
count = 0
for i in hxr:
    count += tp.count(i)
    print(i+' '+':'+' '+str(tp.count(i)))
print("Invalid :",tpCount-count)
发表于 2022-08-01 21:20:29 回复(0)
ip = int(input())
name = input().split()
candi = {}
for i in range(ip):
    tmp = name[i]
    candi[tmp] = 0

num = int(input())
votes = input().split()
Invalid = 0
for i in range(num):
    tmp = votes[i]
    if tmp in candi.keys():
        candi[tmp] += 1
    else:
        Invalid += 1

for key, value in candi.items():
    print("{} : {}".format(key, value))

print("{} : {}".format("Invalid", Invalid))
        
    

发表于 2022-07-30 14:29:47 回复(0)
n, P_lst, N, lst = int(input()), input().split(), int(input()), input().split()
Lst = [lst.count(i) for i in P_lst]
for i in range(n):
    print(P_lst[i]+' : '+str(Lst[i]))
print('Invalid : '+str(N-sum(Lst)))

发表于 2022-07-19 01:29:51 回复(0)
num_people,name,num_vote,vote=int(input()),list(map(str,input().split(" "))),int(input()),list(map(str,input().split()))
record={}
sum_r=0
for n in name:
    record[n]=vote.count(n)
    sum_r+=record[n]
record['Invalid']=num_vote-sum_r
for key,value in record.items():
    print(key+" : "+str(value))
发表于 2022-07-14 21:55:38 回复(0)
a_nu=int(input())
a_name=str(input()).split()
b_nu=int(input())
b_name=str(input()).split()
dic={}
inv=0
for i in a_name:
    dic[i] = 0

for j in b_name:
    if j not in dic:
        inv += 1
    else:
        dic[j] +=1
for k in dic:
    print(k,':',dic[k])
print('Invalid :',inv)

发表于 2022-07-05 16:20:58 回复(0)
while True:
    try:
        peos, names, piao_peos, piao = int(input()), input().split(), int(input()), input().split()
        dict_ = {}
        for i in names:
            for j in piao:
                if i == j:
                    dict_[i] = dict_.get(i, 0) + 1
                else:
                    dict_[i] = dict_.get(i, 0)
        for i, j in dict_.items():
            print(f'{i} : {str(j)}')
        print(f'Invalid : {str(piao_peos - sum(dict_.values()))}')
        pass
    except:
        break
发表于 2022-06-30 15:22:44 回复(0)
n = int(input())
people = input().split(" ")
m = int(input())
piao = input().split(" ")

mydic={}
for i in people:
    for j in piao:
        mydic[i] = mydic.get(i, 0)
        if i == j:
            mydic[i]=mydic.get(i,0)+1

count_in = 0
for i in people:
    for j in piao:
        if j == i:
            count_in += 1

mydic["Invalid"]=len(piao)-count_in

for key,value in mydic.items():
    print(key,end=" : ")
    print(value)

发表于 2022-06-27 00:37:35 回复(0)
#不知为什么不对啊,计时做的,用的最快能想到的比较笨的办法
while True:
    try:
        s1=int(input())
        s2=str(input()).split()
        s3=int(input())
        s4=str(input()).split()
        d={}
        for i in s4:
            if i in d.keys():
                d[i]+=1
            elif i not in d.keys():
                d[i]=1
        for i in s2:
            if i not in s4:
                d[i]=0
        for k, v in sorted(d.items()):
            if k in s2:
                print(k,":",v)
        c=0
        for j in s4:
            if j not in s2:
                c+=1
        print("Invalid :",c)
    except:
        break

发表于 2022-06-17 17:10:32 回复(0)
while True:
    try:
        n = int(input())
        s1 = input().split()
        m = int(input())
        s2 = input().split()
        lst = []
        num = 0
        for i in s1:
            if i in s2:
                lst.append((i,s2.count(i)))
                num += s2.count(i)
            else:
                lst.append((i,0))
        for i in lst:
            print(i[0],":",i[1])
        result = m - num
        print(f"Invalid : {result}")
    except:
        break
发表于 2022-06-05 21:56:30 回复(0)
while True:
    try:
        s0, s1, s3, s2 = input(), input().split(), input(), input().split()
        print('\n'.join( [f'{s} : {s2.count(s)}' for s in s1 if s in s1] ))
        print(f'Invalid : {len([x for x in s2 if x not in s1])}')
    except:
        break
发表于 2022-05-31 13:07:59 回复(0)
while True:
    try:
        n=int(input())
        data=input().split(' ')
        n1=int(input())
        data1=input().split(' ')
        d=dict()
        for ch in data:
            if ch in data1:
                num=data1.count(ch) 
                d[ch]=num
            else:
                d[ch]=0
        d['Invalid']=abs(sum(d.values())-n1)
        for ind,val in d.items():
            print(str(ind)+' '+': '+str(val))
        
    except:
        break

发表于 2022-05-24 18:08:37 回复(0)

问题信息

难度:
56条回答 30661浏览

热门推荐

通过挑战的用户

查看代码